*INF2424 - VISUALIZAÇÃO DE DADOS*

*ALUNO: PEDRO HENRIQUE SCHNEIDER*

1. SEÇÃO 01 - COMPARAÇÕES (RANKING).

2. SEÇÃO 02 - DISTRIBUIÇÕES E CORRELAÇÕES

3. SEÇÃO 03 - ANÁLISES TEMPORAIS

4. SEÇÃO 04 - GEO-REFERENCIAL (MAPAS)

In [22]:
# Rodando/Carregango o script com todo desenvolvimento. 

%run Viz_Script01.ipynb

1. SEÇÃO 01 - COMPARAÇÕES (RANKING).

Nesta seção a ideia principal foi fazer as primeiras explorações quantitativas fazendo comparações entre atributos numéricos referentes as unidades e procedimentos. Desta forma foram agregados e ordenados, unidades e procedimentos, por quantidade total de marcações realizadas, tempo médio de espera e investimentos, para o ano de 2018.

A escolha para representar estes rankings foi o grafico de barras, por se tratar de um gráfico adequado para comparações. A primeira tentativa foi com barras na vertical, ordenadas de forma decrescente e com os rótulos do eixo x de forma um pouco inclinada para tentar permitir a leitura. O grafico ainda possui interatividade, ressaltando os rótulos ao passar o mouse por cima, como mostrado abaixo em BAR01.

In [23]:
BAR01()

Porém como pode ser observado acima, em função do comprimento dos rótulos do eixo x, estes foram cortados na figura. Desta forma, tentei como uma outra biblioteca e alterando as barras para veticais, como mostrado em BAR02 abaixo.

In [3]:
BAR02()
Out[3]:
<matplotlib.axes._subplots.AxesSubplot at 0x18a9a8e6b38>

Desta vez, é possível observar que legibilidade dos rótulos melhorou, porém eu gostaria de manter algumas características anteriores, como a ordem decrescente e a interatividade.

Sendo assim, encontrei um padrão final, como uma combinação entre os gráficos anteriores e serviu para a construção de todos os seguintes rankings representados pelos de gráficos de BAR03 a BAR08.

In [4]:
BAR03()
In [5]:
BAR04()
In [6]:
BAR05()
In [7]:
BAR06()
In [8]:
BAR07()
In [9]:
BAR08()

2. SEÇÃO 02 - DISTRIBUIÇÕES E CORRELAÇÕES

Nesta seção a ideia foi explorar o relacionamento entre algumas variáveis para tentar buscar explicações ou correlações de comportamento entre determinadas variáveis.

Nesta linha, a primeira hipótese levantada foi a relação do tempo de espera de atendimento em função do agendamento e marcação acontecereme em unidades de saúde diferentes. Isto é, existem atendimentos onde o agendamento e a realização do atendimento são feitos em uma mesma unidade e existem atendeimentos onde isto ocorre em unidades diferentes.

Desta forma, o grafigo BOX01 adotado abaixo que é um grafico de distribuição do tipo BOX PLOT, nos mostra que existe um aumento médio no tempo de espera em função desta característica de agendamento e atendimento em unidades diferentes.

No gráfico abaixo, temos no eixo x, False para atendimentos em unidades diferentes e True para a mesma uniade.

In [26]:
BOX01()
Out[26]:
<matplotlib.axes._subplots.AxesSubplot at 0x18aa1098898>

Também gostaria de verificar, alguma relação do tempode espera em função da idade do paciente.

Neste caso, primeiro utilizei um Histograma para a distribuição da idade, visto em HIST01. Que apresenta uma curva normal em torno de idades considerada mais altas, ou seja, maior parte dos pacientes de idosos.

E quando tentei uma correlação, utilizando para isso um grafico de disperção, SCAT01, não encontrei nenhuma correlação entre as variáveis.

In [11]:
HIST01()
In [25]:
SCAT01()
Out[25]:
<matplotlib.axes._subplots.AxesSubplot at 0x18aa76fbac8>

Ainda utilizando a técnica de graficos de disperção, Scatter plots, também tentei avaliar qual seria a relação de investimento com o tempo de espera. Ou seja, conforme a ideia inicial, avaliar se maiores investimentos ajudariam na performance medida atraves do tempo de espera. Pelo menos analisando os dados agregados por unidades e neste caso para últimos 10 anos aproximadamente, a Imagem SCAT02 também não mostra nenhuma correlação entre elas.

In [24]:
SCAT02()
Out[24]:
<matplotlib.axes._subplots.AxesSubplot at 0x18aa11fe470>

3. SEÇÃO 03 - ANÁLISES TEMPORAIS

Já com análises temporais , um grafico de linha como o TS01 a seguir, nos ajuda a perceber que apesar de não ter detectado nehuma relação ou melhoria na performance do tempo de atendimento no agregado geral, houve uma crescente de investimento desde 2010, somente apresentando um recuo no final de 2018.

In [13]:
TS01()

4. SEÇÃO 04 - GEO-REFERENCIAL (MAPAS)

Por fim, tendo as cordenadas das unidades, achei que tentar uma ferramenta de visualização com um contexto geografico do múnicipio, poderia dar uma visão mais representativa dos dados e de alguns atributos de interesse.

Com essa ideia, a primeira camada foi plotar as unidades, simplesmente. MAP01 a seguir.

In [15]:
MAP01()
Out[15]:

Uma segunda ideia, foi representar os tempos de espera medio geral por unidade no formato de Heatmap. Assim as areas mais avemelgadas apresentam tempos maiores.

In [16]:
MAP02()
Out[16]:

E uma terceira opção, representar o mesmo tempo de espera medio geral por unidades, ataravés de uma escala de cor e por tamanho. A escala de cor de azul, representaria, os mais claros tempos menores e os mais escuros tempos maiores.

A escala de tamanho, neste caso também está representando o tempo de espera, sendo os círculos menores , tempos menores e os círculos maiores, tempos maiores.

Como, pela tecnica de visualização, não é correto utilizar dois atributos graficos para oa mesma variável, na versão final , isso não foi adotado. Embora, para mim, eu tenha achado mais facil fazer a comparação entre as unidades desta forma, do que utilizando separadamente os atributos cor ou tamanho.

In [17]:
MAP03()
Out[17]:

Para a versão final de mapas, criei uma "ferramenta" mais interativa onde se pode mexer com os valores das variáveis e desta forma criar alguns filtros.

Para a primeira ferramenta, o Mapa mostra o tempo médio de espera e quantidade de atendimentos por unidade, para um determidado procedimento escolhido e para o tipo de mapa escolhido.

In [18]:
display(w1,w2)
In [19]:
plot_procedimento_espera(w1.value, df, w2.value)
Cor = Tempo de Espera Médio
Tamanho do Círculo = Quantidade de Atendimentos
Out[19]:

Já na segunda ferramenta a seguir, a ideia foi mostrar, por procedimento e mês escolhidos, o saldo de vagas para atendimentos por unidades.

In [27]:
display(w3,w4)
In [28]:
plot_procedimento_invest(w3.value, df2, w4.value)
Tamanho do Círculo = Saldo de Vagas
Cor = Positivo(Azul) | Negativo(Vermelho) 
Out[28]:
In [ ]: